/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.agi.devsol.ejb.votacaoestimativa;

import br.com.agi.devsol.dominio.Estimativa;
import br.com.agi.devsol.dominio.Requisito;
import br.com.agi.devsol.dominio.VotacaoEstimativa;
import java.io.Serializable;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;

/**
 *
 * @author rgrosz
 */
@Stateless
public class RepositorioVotacaoEstimativaImpl implements RepositorioVotacaoEstimativa, Serializable {

    @PersistenceContext
    private EntityManager em;
    
    @Override
    public VotacaoEstimativa findVotacao(Requisito estimativa) {
        CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
        CriteriaQuery<VotacaoEstimativa> qQuery = criteriaBuilder.createQuery(VotacaoEstimativa.class);        
        //Root<VotacaoEstimativa> votacao = qQuery.from(VotacaoEstimativa.class);
        //Root<Estimativa> rootEstimativa = qQuery.from(Estimativa.class);
        
        //qQuery.where(criteriaBuilder.equal(rootEstimativa, votacao.get("estimativa")));
        
        TypedQuery<VotacaoEstimativa> tQuery = em.createQuery(qQuery);
        VotacaoEstimativa retorno;
        try{
            retorno = tQuery.getSingleResult();        
        }catch(NoResultException no){
            retorno = new VotacaoEstimativa();
        }
        
        return retorno;       
    }
    
}
